package com.songlanyun.modules.servicegoods.service;

import com.songlanyun.common.drive.IBaseService;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.modules.goods.model.dto.GoodsStatusDTO;
import com.songlanyun.modules.goods.model.vo.GoodsSlimVo;
import com.songlanyun.modules.servicegoods.entity.ServiceGoods;
import com.songlanyun.modules.servicegoods.model.dto.ServiceGoodsDTO;
import com.songlanyun.modules.servicegoods.model.vo.NearbyShopSlimVo;
import com.songlanyun.modules.servicegoods.model.vo.ServiceGoodsSlimVo;

import java.util.List;
import java.util.Map;

/**
 * 服务商品
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2020-12-15 11:33:21
 */
public interface ServiceGoodsService extends IBaseService<Long,ServiceGoods> {

    ServiceGoods add(Long shopId,ServiceGoodsDTO dto);

    ServiceGoods update(Long shopId,ServiceGoodsDTO dto);

    ServiceGoods loadServiceGoodsByShopIdAndId(Long shopId,Long id,Boolean tw);

    ServiceGoods loadServiceGoodsById(Long id,Boolean tw);

    void delete(Long shopId, Long id);

    void added(Long shopId, GoodsStatusDTO dto);

    void hot(Long shopId, GoodsStatusDTO dto);

    void newGoods(Long shopId, GoodsStatusDTO dto);

    void recommend(Long shopId, GoodsStatusDTO dto);

    void check(Long goodsId, GoodsStatusDTO dto);

    PageUtils queryALLPage(Map<String, Object> params);

    PageUtils querySelfPage(Map<String, Object> params);

    List<ServiceGoodsSlimVo> loadList(Map<String, Object> params);

    Integer loadCount(Map<String, Object> params);

    List<NearbyShopSlimVo> nearbyShopList(Map<String, Object> params);

}

